The invention is directed to computing systems in which a client process communicates with a server process.
A computing system may include a client computer that communicates with a server computer over a network. In such a system, referred to as a distributed computing system, a client process (i.e., a process running on the client computer) causes a server process (i.e., a process running on the server computer) to perform an operation by sending a request to the server process over the network. The server process responds by performing the operation and returning any resulting data to the client process over the network. A system in which a client process makes requests to which a server process responds may be referred to as operating according to a request-response protocol.
Exchanges of requests and responses between the client and server processes may be made using the Remote Procedure Call ("RPC") protocol. The RPC protocol is discussed, for example, in "Microsoft RPC Programming Guide", John Shirley and Ward Rosenberry, O'Reilly & Associates, Inc., Sebastopol, Calif., 1995, which is incorporated herein by reference.
The RPC protocol permits the client process to communicate with the server process by making a procedure call to the server process. RPC software running on the client computer automatically transmits the procedure call to the server computer. RPC software running on the server computer receives the procedure call and initiates a response by the server process. The RPC software then returns the results to the client computer.
Request-response protocols such as the RPC protocol provide security features and other mechanisms to ensure data integrity. For this reason, electronic mail and other applications that are sensitive to data integrity and security may use a request-response protocol for communication between a server process and client processes. In applications such as electronic mail systems, the server process may support a large number of client processes.